package tw.rescue.model;

/**
 * 電話。
 * 可參考http://technet.microsoft.com/zh-tw/library/cc728034(WS.10).aspx
 */
public interface Phone {
	
	/**
	 * 完整電話號碼
	 * @return
	 */
	public String getFullPhoneNumber();

	/**
	 * 取得
	 * 識別電話號碼之國家或地區的標準國家 (地區) 碼。其包含從 0 到 9 的十進位數字。國家 (地區) 碼由其後的空格隔開。
	 * @return
	 */
	public String getRegionCode();

	/**
	 * 設定
	 * 識別電話號碼之國家或地區的標準國家 (地區) 碼。其包含從 0 到 9 的十進位數字。國家 (地區) 碼由其後的空格隔開。
	 * @param newRegionCode
	 */
	public void setRegionCode(String newRegionCode);
	
	/**
	 * 取得
	 * 電話號碼的區碼或城市碼其中包含從 0 到 9 的十進位數字，區碼或城市碼是由括號隔開。若是不使用區域或城市碼的國家/地區，則此項可省略。

	 * @return
	 */
	public String getAreaCode();
	
	/**
	 * 設定
	 * 電話號碼的區碼或城市碼其中包含從 0 到 9 的十進位數字，區碼或城市碼是由括號隔開。若是不使用區域或城市碼的國家/地區，則此項可省略。
	 * @param newAreaCode
	 */
	public void setAreaCode(String newAreaCode);

	/**
	 * 取得
	 * 電話用戶的號碼。其包含從 0 到 9 的十進位數字、格式化字元或撥號控制字元： <br/>
	 * A a B b C c D d P p T t W w * # ! @ $ ? <br/>
     * 電話用戶號碼不能包含下列字元： <br/>
	 * ( ) ^ <br/>
	 * 電話用戶號碼的格式化字元通常是空格、句點及破折號。使用格式化字元可讓電話號碼更易於讀取。因為 TAPI 會捨棄它們，所以它們不會影響撥號。<br/>
	 * @return
	 */
	public String getSubscriberNumber();

	/**
	 * 設定
	 * 電話用戶的號碼。其包含從 0 到 9 的十進位數字、格式化字元或撥號控制字元： <br/>
	 * A a B b C c D d P p T t W w * # ! @ $ ? <br/>
     * 電話用戶號碼不能包含下列字元： <br/>
	 * ( ) ^ <br/>
	 * 電話用戶號碼的格式化字元通常是空格、句點及破折號。使用格式化字元可讓電話號碼更易於讀取。因為 TAPI 會捨棄它們，所以它們不會影響撥號。<br/>
	 * @param newSubscriberNumber
	 */
	public void setSubscriberNumber(String newSubscriberNumber);

}